﻿using System;
using System.Linq;
using System.Collections.Generic;
using CoreLibrary.Utility;

namespace CoreLibrary.People
{
    public class EmployeeGenerator
    {
        private static List<string> lastName = new List<string>()
            { "Smith", "Johnson" ,"Williams","Jones","Brown","Davis","Miller"
            ,"Wilson","Moore","Taylor","Anderson","Thomas","Jackson","White","Harris"
            ,"Martin","Thompson","Garcia","Martinez","Robinson","Clark","Rodriguez","Lewis"
            ,"Lee","Walker","Hall","Allen","Young","Hernandez","King","Wright"
            ,"Lopez","Hill","Scott","Green","Adams","Baker","Gonzalez","Nelson"
            ,"Carter","Mitchell","Perez","Roberts","Turner","Phillips","Campbell","Parker"
            ,"Evans","Edwards","Collins","Stewart","Sanchez","Morris","Rogers","Reed"
            ,"Cook","Morgan","Bell","Murphy","Bailey","Rivera","Cooper","Richardson"
            ,"Cox","Howard","Ward","Torres","Peterson","Gray","Ramirez","James"
            ,"Watson","Brooks","Kelly","Sanders","Price","Bennett","Wood","Barnes"
            ,"Ross","Henderson","Coleman","Jenkins","Perry","Powell","Long","Patterson"
            ,"Hughes","Flores","Washington","Butler","Simmons","Foster","Gonzales","Bryant"
            ,"Alexander","Russell","Griffin","Diaz","Hayes"};

        public static Employee GenerateRandom()
        {
            Employee e = new Employee();
            e.LastName = lastName.SelectRandom();
            e.Sex = Chance.SelectRandomValue(Enum.GetValues(typeof(EmployeeSex)).Cast<EmployeeSex>().ToList());
            switch (e.Sex)
            {
                case EmployeeSex.Male:
                    e.FirstName = maleFirst.SelectRandom();
                    break;
                case EmployeeSex.Female:
                    e.FirstName = femaleFirst.SelectRandom();
                    break;
                default:
                    break;
            }
            return e;
        }

        private static List<string> maleFirst = new List<string>(){"Aiden"
            ,"Jackson","Mason","Liam","Jacob","Jayden","Ethan","Noah","Lucas"
            ,"Logan","Caleb","Caden","Jack","Ryan","Connor","Michael","Elijah"
            ,"Brayden","Benjamin","Nicholas","Alexander","William","Matthew","Eddie"
            ,"James","Landon","Nathan","Dylan","Evan","Luke","Andrew","Timothy","Timmy","Tim"
            ,"Gabriel","Gavin","Joshua","Owen","Daniel","Carter","Tyler","Cameron","Christian","Wyatt","Henry","Eli","Joseph"
            ,"Max","Isaac","Samuel","Anthony","Grayson","Zachary","David","Jim","Jimmy"
            ,"Christopher","John","Isaiah","Levi","Jonathan","Oliver","Chase","Cooper","Tristan","Colton","Austin","Colin"
            ,"Charlie","Dominic","Parker","Hunter","Thomas","Alex","Ian","Jordan","Cole","Julian","Aaron","Carson","Miles"
            ,"Blake","Brody","Adam","Sebastian","Adrian","Nolan","Sean","Riley","Bentley","Xavier","Hayden","Jeremiah","Jason"
            ,"Jake","Asher","Micah","Jace","Brandon","Hudson","Nathaniel","Bryson","Ryder","Justin","Bryce"};

        private static List<string> femaleFirst = new List<string>() {"Sophia","Emma","Isabella","Olivia","Ava"
            ,"Lily","Chloe","Madison","Emily","Abigail","Addison","Mia","Madelyn"
            ,"Ella","Hailey","Kaylee","Kaitlyn","Aubrey","Brooklyn","Jenna","Jenny"
            ,"Layla","Hannah","Charlotte","Bella","Natalie","Sarah","Grace","Jennifer"
            ,"Amelia","Kylie","Arianna","Anna","Elizabeth","Sophie","Claire","Lila"
            ,"Aaliyah","Gabriella","Elise","Lillian","Samantha","Makayla","Audrey","Alyssa"
            ,"Ellie","Alexis","Isabelle","Savannah","Evelyn","Leah","Keira","Allison"
            ,"Maya","Lucy","Sydney","Taylor","Molly","Lauren","Scarlett","Susan"
            ,"Brianna","Victoria","Liliana","Aria","Kayla","Annabelle","Gianna","Diana"
            ,"Stella","Reagan","Julia","Bailey","Alexandra","Nora","Carolin"
            ,"Mackenzie","Jasmine","Jocelyn","Kendall","Morgan","Nevaeh","Maria","Eva"
            ,"Juliana","Abby","Alexa","Summer","Brooke","Penelope","Violet","Kate"
            ,"Hadley","Ashlyn","Sadie","Paige","Katherine","Sienna","Piper"};
    }
}
